Mock preciso da sua ajuda cara... Ja tentei de todas as formas possíveis e nada adianta.
Você não poderia postar os seus scripts ai pra mim por favor não?
Se der obrigado...
Por Natanael Beckman, 07 de fev. de 2011 em Mods, funções e outros
info
Grupo: Campones
Registrado: 21/07/12
Posts: 2
Reputação: 0
Char no Tibia: Frenezinho

Mock preciso da sua ajuda cara... Ja tentei de todas as formas possíveis e nada adianta.
Você não poderia postar os seus scripts ai pra mim por favor não?
Se der obrigado...
info
Grupo: Campones
Registrado: 11/02/12
Posts: 25
Reputação: 0
Char no Tibia: nao jogo global

ai manin pode encina a executa aquele tao comando na database? oque tenho q fase?
info
Grupo: Campones
Registrado: 12/12/07
Posts: 26
Reputação: 0
Char no Tibia: Master Del Lyra

GM Bekman REP+ eu te amo cara funcionou perfeitamente
, obrigado por compartilhar
info
Grupo: Marquês
Registrado: 29/10/11
Posts: 1.2k
Reputação: +134
Gênero: Masculino

ai manin pode encina a executa aquele tao comando na database? oque tenho q fase?
Cara fas o seguinte.Vai na sua database,e abre a tabela accounts.
Abriu?
Va em SQL.Na caixa para vc digitar,voce poem isso.
alter table `accounts` add `vip_time` INT NOT NULL;
Entendeu?
GM Bekman REP+ eu te amo cara funcionou perfeitamente
, obrigado por compartilhar
Olá amigo,voce reviveu um topico que ja havia sido esquecido a mais de 30 dias.Isso é considerado Flood,reportado.
[28/12/2012 20:30:15] [Error - TalkAction Interface]
[28/12/2012 20:30:15] data/talkactions/scripts/addvip.lua:onSay
[28/12/2012 20:30:15] Description:
[28/12/2012 20:30:15] data/lib/049-vipsys.lua:102: attempt to call field 'executeQuery' (a nil value)
[28/12/2012 20:30:15] stack traceback:
[28/12/2012 20:30:15] data/lib/049-vipsys.lua:102: in function <data/lib/049-vipsys.lua:98>
[28/12/2012 20:30:15] (tail call): ?
[28/12/2012 20:30:15] data/talkactions/scripts/addvip.lua:13: in function <data/talkactions/scripts/addvip.lua:1>
[28/12/2012 20:30:50] [Error - TalkAction Interface]
[28/12/2012 20:30:50] data/talkactions/scripts/addvip.lua:onSay
[28/12/2012 20:30:50] Description:
[28/12/2012 20:30:50] data/lib/049-vipsys.lua:102: attempt to call field 'executeQuery' (a nil value)
[28/12/2012 20:30:50] stack traceback:
[28/12/2012 20:30:50] data/lib/049-vipsys.lua:102: in function <data/lib/049-vipsys.lua:98>
[28/12/2012 20:30:50] (tail call): ?
[28/12/2012 20:30:50] data/talkactions/scripts/addvip.lua:13: in function <data/talkactions/scripts/addvip.lua:1>
[28/12/2012 20:34:32] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:34:32] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:35:31] Magnes has logged out.
[28/12/2012 20:37:49] Knight of Crusaders has logged in.
[28/12/2012 20:38:48] Knight of Crusaders has logged out.
[28/12/2012 20:38:55] Magnes has logged in.
[28/12/2012 20:38:57] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:38:58] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:38:59] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:00] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:00] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:00] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:01] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:01] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:01] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:12] [Error - MoveEvent::executeStep] Call stack overflow.
[28/12/2012 20:39:12] [Error - MoveEvent::executeStep] Call stack overflow.
erros...
a tempos queria tao arrumadim assim valeu manu
info
Grupo: Campones
Registrado: 30/04/13
Posts: 74
Reputação: +3
Gênero: Masculino
Char no Tibia: Riverwood

Aqui da o erro "You have to specify table." Uso o SQLite Studio. Alguém pode me dar uma luz, por favor?
Cara, Fiz tudo passo a passo, No 9° passo. eu nao entendi.. fiz uma coias aki.. e crio que seja o motivo do erro.
Quando eu vou dar Vip para alguém nao aparece nem como um comando, vira uma mensagem comum no Default.
Mais quando eu uso o Comando em alguma palavra aleatoria como: Aaaaa o comando funciona mais diz isso, 23:55 aaaaa não esta online ou não existe.
Criei um char e puis o nick dele de Aaaaa, mais ai torna a acontecer a primeira coisa.. vira uma mensagem.
Alguem me ajuda a fazer o 9° passo, que acho que o problema resolvera
info
Grupo: Artesão
Registrado: 26/04/09
Posts: 120
Reputação: +2

Tudo funcionou bem, exeto o fato de quando usar o comando /vip del character, a vip é removida, mas o char nao loga mais, fica so em conectando word, preciso de ajudo!
quando tento logar o char, aparece no terminal,
Character logged in
Character logged out
obg
Editado Julho 22 por markim1986
info
Grupo: Campones
Registrado: 26/10/13
Posts: 3
Reputação: 0

MEU SERVE JA TEM SISTEMA VIP , QUERO UM QUE SEJ A SISTEMA DONATE ONDE ENTRA SO OS DONATE E SO O GOD COLOCA /ADDDONATE (NOME PLAYERS) 30, QUE SERIA 30 DIAS POR FAVOR MAS REP_+
info
Grupo: Campones
Registrado: 25/09/15
Posts: 13
Reputação: +2

man o erro que esta dando aqui é esse
como executa o comando no sqlitestudio?
info
Grupo: Campones
Registrado: 14/06/13
Posts: 11
Reputação: 0
Gênero: Masculino
Char no Tibia: [ADM] Mayk on BaiakME

Em 07/02/2011 em 16:36, Natanael Beckman disse:Boa galera eu mais uma vez trazendo comodidade e algo seguro pra nós. Esse sistema VIP do Mock foi modificado e aptado em alumas partes dos scripts, para um funcionamento correto e com isso tivemos a ajuda dos scripts, Doidin, Luke sky walker e por min por ter ido atraz de todas as soluções pra completa algo incompleto.
Vamos nois:
1° Acesse a pasta data/lib copie la um arquivo.lua e renomeio para 049-vipsys.lua, após isso apague tudo dentro desse arquivo e adicione este coder:vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end2° Abra a pasta data/creaturescrpits/scripts copie la um arquivo.lua e renomeio para vip.lua, dentro dele adicione:
By Lukeskywalkerfunction onLogin(cid) local temple = { x =32369, y = 32246, z = 6} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid))..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true endVocê pode troca as coordenadas do templo: local temple = {x=32369, y=32246, z=6}.
3° Em data/creaturescripts/scripts/login.lua adicione essas tags:registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "VipReceive")4° Em data/creaturescripts/creaturescripts.xml adicione está tag:
<event type="login" name="FimVip" event="script" value="vip.lua"/>5º Em data\movements\scripts copie la um arquivo.lua e renomeio para viptile.lua e adicione este coder dentro do mesmo:
function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "You need to be a vip player to access this area.", enterMsg = "Welcome to vip area!", enterEffect = CONST_ME_MAGIC_RED, } if isPlayer(cid) == true then if vip.hasVip(cid) == FALSE then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true end end6° Em data\movements\movements.xml adicione a tag:
<movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/>Vejam a numeração 13500 você irá usar no tile que você quer para a passagem de player VIP para configurar adicione a numeração em ActionID do tile.
7° Em data/talkactions/scripts acrecente dentro da pasta scripts uma outra pasta com o nome VIP vamos precisar de 7 arquivos.lua quem teram os nomes e coder a seguir:
add.luafunction onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Added "..param.." Vip Days.") return doPlayerAddVipDays(cid, param) endaddvipp.lua
function onSay(cid, words, param) if param == "" then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n") end if param:lower():find('add') == 1 and 3 then local _,_,id,name = param:lower():find('add (%d+) (.+)') name = name or "" id = tonumber(id or 1) or 1 if tonumber(id) == nil or getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n[Player: "..name.."]") end if isPlayer(getPlayerByName(name)) == TRUE then vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".") doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.") else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.") end elseif param:lower():find('del') == 1 and 3 then local _,_,name = param:lower():find('del (.+)') if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n") end vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.") elseif param:lower():find('see') == 1 and 3 then local _,_,name = param:lower():find('see (.+)') name = name or "" if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n") end local ret_ = vip.getVip(getPlayerByName(name)) if ret_ == 0 then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.") else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_)) end end return TRUE endget.lua
function onSay(cid, words, param, channel) doPlayerSendCancel(cid, ""..getPlayerVipDays(cid).." days VIP left.") endis.lua
function onSay(cid, words, param, channel) if isPlayerVip(cid) == TRUE then doPlayerSendCancel(cid, "You are a VIP player.") else doPlayerSendCancel(cid, "You are not a VIP player.") end endremovevip.lua
function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Vip removed.") return doPlayerRemoveVip(cid) endset.lua
function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end
8°Em data/talkactions/talkactions.xml adicione está tag:
<!-- VIP System --> <talkaction log="yes" words="/vip" access="5" event="script" value="VIP/addvipp.lua" /> <talkaction words="!vipdays" event="script" value="VIP/vipdays.lua" />9° Para finalizar execute este comando na sua database na tabela accounts:
alter table `accounts` add `vip_time` INT NOT NULL;Bom galera fim este sistema vip adiciona os dias corretos e ao termino do VIP o player recebe a menssagem que o VIP acabou é teleportado pro templo porque se no caso ele estiver na área VIP essa é uma saida e zera a coluna vip_time.
Creditos:
Mock (por ter iniciado algo e não terminou)
Lukeskywalker (Sistema de finalização perfeito do vip.)
Natan Beckman (Por ter ido atrás a conclusão 100% in game e php)
info
Grupo: Campones
Registrado: 15/06/11
Posts: 34
Reputação: +5
Char no Tibia: Thygas / Zarvazy faloon
Opá preciso de uma ajudinha aqui.
Fiz tudo certo esta funcionando tudo perfeitamente REP+
Agora estou precisando de um comando para o jogador comprar a VIP pelo jogo.
Alguma sugestão?
Obrigado